如果上線的網站是純靜態,不需打任何api,才適合用 github pages 部署!
git push -u origin main 推上去npm install --save-dev gh-pages
nuxt.config.ts
export default defineNuxtConfig({
	app: {
		baseURL: '/my-portfolio/', // 要和repo名稱一模一樣
		buildAssetsDir: '/static/' // 打包後靜態資源(JS、CSS、圖片)的資料夾名稱
	},
	 nitro: {
    preset: 'github_pages', // 為GitHub Pages做優化打包
    prerender: {
      routes: ['/'], // 指定要預渲染 (prerender)的頁面
    }
  },
  routeRules: {
    '/**': { prerender: true } // 告訴Nuxt所有路由都要prerender
  },
})
public/.nojekyll 空白檔案
package.json
{
	"scripts": {
	"build": "nuxt build",
	"generate": "nuxt generate",
	"deploy": "gh-pages --dotfiles -d .output/public"
	}
}
.output/public
npm run generate
.output/public 推到 GitHub 的 gh-pages branch
npm run deploy
!小坑而已!
每次有改動程式碼,都要記得先 git push 上去,再重複第 5. 6 步驟,不然怎麼推都會是舊的程式碼。媽蛋我忘記推,然後狂 depoly 想說為什麼沒有!
!大坑來了!
注意 github pages 限制
設定 Source:Deploy from a branch
設定 Branch:gh-pages /root
!大坑來了!
我重複 deploy 好幾次,但是都會有 img 和 css 404,而且只是有些圖片,css 也有某幾個顏色跑掉,WHY ??????
發現在 npm run generate 時是產生靜態檔案,靜態檔案的路徑和當初寫的路徑不一樣,在 devtool上看到圖片設定的路徑是 src="/my-portfolio-2025/ipx//images/intro-pic.png"
⇒ 所以就回頭看了 .output/public ,發現在 .output/public/_ipx 中有缺少圖片,把原本放在根目錄的 public/images 補進 .output/public/_ipx 就沒有少圖了
css 某幾個顏色跑掉,我猜是因為在設定 app.scss 時,有幾個 class 可能和 vuetify 原生的 class重疊了,我設定的 bg-yellow 都變成了其他黃色!
⇒ 所以我就把 app.scss 的 class 名稱改成 bg-main-yellow 就顯示出我喜歡的黃色了!
!小坑而已!
今天遇到很多坑,而且 GPT 還是 copilot 老師給我的方法都沒有效,快氣死,後來是靠 Claire 老師 救我的!
所以啊,太依靠 AI 也不一定可行,試很多次無果就該換條路走!提醒自己!